#!/bin/bash

# 测试 Docker 构建脚本
echo "🧪 测试 Docker 构建..."

# 检查文件是否存在
if [ ! -f "Dockerfile.production" ]; then
    echo "❌ Dockerfile.production 不存在"
    exit 1
fi

if [ ! -f "package.json" ]; then
    echo "❌ package.json 不存在"
    exit 1
fi

# 检查 start 脚本是否存在
if ! grep -q '"start"' package.json; then
    echo "❌ package.json 中缺少 start 脚本"
    exit 1
fi

echo "✅ 文件检查通过"

# 测试构建（不推送）
echo "🔨 测试构建 Docker 镜像..."
docker build -f Dockerfile.production -t wenno-app-test:latest .

if [ $? -eq 0 ]; then
    echo "✅ Docker 构建测试成功"
    
    # 测试运行
    echo "🚀 测试运行容器..."
    docker run --rm -d --name wenno-test -p 3001:3001 \
        -e NODE_ENV=production \
        -e DATABASE_URL="mongodb://root:nb2xn929@wen-mongodb.ns-qr25t2tz.svc:27017/wenno_db?authSource=admin" \
        -e JWT_SECRET="test-secret" \
        -e JWT_REFRESH_SECRET="test-refresh-secret" \
        -e CORS_ORIGIN="http://localhost:3001" \
        wenno-app-test:latest
    
    # 等待启动
    sleep 10
    
    # 测试健康检查
    if curl -s http://localhost:3001/health > /dev/null; then
        echo "✅ 容器运行测试成功"
    else
        echo "⚠️  健康检查失败，但构建成功"
    fi
    
    # 清理测试容器
    docker stop wenno-test 2>/dev/null || true
    docker rmi wenno-app-test:latest 2>/dev/null || true
    
else
    echo "❌ Docker 构建测试失败"
    exit 1
fi

echo "🎉 所有测试通过，可以部署了！"
